{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "# Here is where we import all the things we need\n",
    "\n",
    "import numpy as np\n",
    "# For image processing and displaying\n",
    "import matplotlib.pyplot as plt\n",
    "# Special function to resize an image\n",
    "from scipy.misc import imresize\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "# load an image\n",
    "img = plt.imread('zero.jpg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x111fe56d8>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111e6e0b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(28, 28, 3)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resize the image to 28x28\n",
    "img = imresize(img, (28,28))\n",
    "img.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# This function converts RGB values to grayscale (1/3rd of each color)\n",
    "# This is a somewhat silly way to do this but perhaps it's a useful demonstration\n",
    "# of reshaping data\n",
    "def rgb2gray(rgb):\n",
    "    return np.dot(rgb[...,:3], [0.333, 0.333, 0.333])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "# Run the conversion\n",
    "gray = rgb2gray(img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(28, 28)"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Check the shape\n",
    "gray.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1121bf358>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nP+3vHRt6Pv93frnZKnePF68vSbOOrVnHJTG2SpU1Np72A4mi/ECiyi5/Z8m/P9KsY2vWcUmMrVKl\njK3U1/wAylP2nh9ASUopv5nNMbPPzOxzM3uijDHkMbNtZrbezNaWvcRYtgzaHjPb0Oe2UWa22Mw2\nZ5/PukxaSWN7ysx2ZY/dWjObW9LY2s3sPTP71Mw2mtnfZreX+tgF4yrlcWv4034zGyTpj5JmS9op\naaWk+93904YOJIeZbZPU4e6lzwmb2c2SvpT0grtfn932L5IOuPvT2R/Oi93975tkbE/pe67cXKex\n5a0s/dcq8bGr5YrXtVDGnn+6pM/dfYu790h6WdLdJYyj6bn7+5IOfOvmuyUtzL5eqN7/PA2XM7am\n4O5d7r4m+/qopDMrS5f62AXjKkUZ5R8raUef73equZb8dklLzGy1mS0oezBn0dZnZaTdktrKHMxZ\nFK7c3EjfWlm6aR67Sla8rjXe8PuuWe4+RdJfSvpp9vS2KXnva7Zmmq75taTx6l3GrUvSL8ocTLay\n9KuSfu7uR/pmZT52ZxlXKY9bGeXfJam9z/dXZLc1BXfflX3eI+l1Nd/qw91nFknNPu8peTz/r5lW\nbj7bytJqgseumVa8LqP8KyVdbWZXmlmrpPskvVnCOL7DzIZmb8TIzIZK+pGab/XhNyXNz76eL+mN\nEsfyDc2ycnPeytIq+bFruhWv3b3hH5Lmqvcd//+V9A9ljCFnXOMlfZJ9bCx7bJJeUu/TwBPqfW/k\nYUl/ImmppM2Slkga1URj+3f1rua8Tr1FG1PS2Gap9yn9Oklrs4+5ZT92wbhKedw4wg9IFG/4AYmi\n/ECiKD+QKMoPJIryA4mi/ECiKD+QKMoPJOr/AEdgcRN3wZgjAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x111e691d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let's look at the image again to be sure\n",
    "plt.imshow(gray,cmap = plt.get_cmap('gray'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "# map values to between 0 and 1\n",
    "gray /= 255"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "# Let's get what we need from keras\n",
    "import keras\n",
    "from keras.models import load_model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "# Load the trained model\n",
    "model = load_model('model.h5')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1, 28, 28, 1)"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Reshap the data\n",
    "# This is one 28x28 image with one channel (gray)\n",
    "# 1 x 28 x 28 x 1\n",
    "inputs = gray.reshape(1, 28, 28, 1)\n",
    "inputs.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 0s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# What digit is it?\n",
    "model.predict_classes(inputs,batch_size=1, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 0s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[  9.99790490e-01,   1.21384085e-06,   1.43691832e-05,\n",
       "          3.56713372e-07,   1.99092838e-07,   2.85336398e-07,\n",
       "          5.29850786e-06,   8.17694740e-07,   1.01113910e-05,\n",
       "          1.76870701e-04]], dtype=float32)"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Look at the probabilities\n",
    "model.predict(inputs,batch_size=1, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
